package com.CST.service.ys;

import com.CST.dto.ys.YsManageSubjectDTO;
import com.CST.entity.ys.YsManageSubject;
import com.CST.vo.ys.YsManageSubjectListVO;
import com.CST.vo.ys.YsManageSubjectVO;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletResponse;
import java.util.List;

/**
 * <p>
 * 服务类
 * </p>
 *
 * @author qtx
 * @since 2023-04-24
 */
public interface YsManageSubjectService extends IService<YsManageSubject> {

    /**
     * 分页查询
     *
     * @param dto 条件
     * @return true or false
     */
    IPage<YsManageSubjectVO> listYsManageSubjectPage(YsManageSubjectDTO dto);

    /**
     * 导出数据
     *
     * @param response response
     * @param dto      条件
     */
    void exportExcelYsManageSubject(HttpServletResponse response, YsManageSubjectDTO dto);

    /**
     * 导出模板
     *
     * @param response response
     */
    void exportExcelYsManageSubjectDemo(HttpServletResponse response);

    /**
     * 导入数据
     *
     * @param file 文件
     */
    void importExcelYsManageSubject(MultipartFile file);

    /**
     * 继承数据
     * @param source 源头年份
     * @param target 目标年份
     * @return true or false
     */
    boolean inherit(Integer source, Integer target);

    /**
     * 查询业务用友编码
     * @param subjectId 预算id
     * @param name 用友名称
     * @return 集合
     */
    List<YsManageSubjectListVO> listYsManageSubject(Long subjectId, String name);

    Integer selectByIds(YsManageSubject entity);
}
